package GPSChallenge.movimiento;

public class ContadorDeMovimientos {
	
	static private ContadorDeMovimientos unicaInstancia = null;
	
	private int cantidadDeMovimientos;
	
	private int maximosMovimientos;
	
	private ContadorDeMovimientos(){
		
		this.cantidadDeMovimientos = 0;
		
		this.maximosMovimientos = 0;
		
	}
	
	static public ContadorDeMovimientos obtenerInstancia(){
		
		if(unicaInstancia == null){
			
			unicaInstancia = new ContadorDeMovimientos();
				
		}
		
		return (unicaInstancia);
		
	}
	
	public void establecerMaximoDeMovimientos(int unMaximoDeMovimientos){
		
		this.maximosMovimientos = unMaximoDeMovimientos;
		
	}
	
	public void sumarMovimientos(int unaCantidadDeMovimientos){
			
			this.cantidadDeMovimientos = this.cantidadDeMovimientos + unaCantidadDeMovimientos;
		
	}
	
	public int obtenerCantidadDeMovimientosHechos(){
		
		return (this.cantidadDeMovimientos);
		
	}
	
	public int obtenerCantidadDeMovimientosRestantes(){
		
		return (this.maximosMovimientos - this.cantidadDeMovimientos);
		
	}
	
	public int obtenerCantidadDeMovimientosMaximos(){
		
		return (this.maximosMovimientos);
		
	}
	
	public void reiniciarCantidadDeMovimientos(){
		
		this.cantidadDeMovimientos = 0;
		
	}
	
	public void reiniciarCantidadDeMovimientosMaximos(){
		
		this.maximosMovimientos = 0;
		
	}
	
	public void establecerCantidadDeMovimientosHechos(int entero){
		this.cantidadDeMovimientos = entero;
	}

}
